package cn.yuanqiao.archive.bianyan.service;

import cn.yuanqiao.archive.bianyan.domain.YqZhuanTi;
import cn.yuanqiao.archive.bianyan.domain.YqZhuanTiBlob;
import cn.yuanqiao.common.core.domain.R;
import cn.yuanqiao.common.core.domain.AjaxResult;
import cn.yuanqiao.system.domain.SysFile;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 专题Service接口
 *
 * @ProjectName: ruoyi-modules-system
 * @Package: cn.yuanqiao.archive.bianyan.service
 * @ClassName: IYqZhuanTiService
 * @Author: lenovo
 * @Description: hbWang
 * @Date: 2023/7/5 9:22
 * @Version: 1.0
 */
public interface IYqZhuanTiService {
    /**
     * 查询专题
     *
     * @param typeId 专题主键
     * @return 专题
     */
    public YqZhuanTi selectYqZhuanTiByTypeId(String typeId);

    /**
     * 查询专题列表
     *
     * @param zhuanTi 专题
     * @return 专题集合
     */
    public List<YqZhuanTi> selectYqZhuanTiList(YqZhuanTi zhuanTi);

    /**
     * 新增专题
     *
     * @param zhuanTi 专题
     * @return 结果
     */
    public AjaxResult insertYqZhuanTi(YqZhuanTi zhuanTi);

    /**
     * 新增专题明细
     *
     * @param YqZhuanTiBlob 专题明细
     * @return 结果
     */
    public int insertYqZhuanTiBlob(YqZhuanTiBlob YqZhuanTiBlob);

    /**
     * 修改专题
     *
     * @param zhuanTi 专题
     * @return 结果
     */
    public int updateYqZhuanTi(YqZhuanTi zhuanTi);

    /**
     * 批量删除专题
     *
     * @param typeIds 需要删除的专题主键集合
     * @return 结果
     */
    public int deleteYqZhuanTiByTypeIds(String[] typeIds);

    /**
     * 删除专题信息
     *
     * @param typeId 专题主键
     * @return 结果
     */
    public int deleteYqZhuanTiByTypeId(String typeId);

    /**
     * 上传封面
     *
     * @param file
     * @return
     */
    R<SysFile> uploadPicture(MultipartFile file);

    /**
     * 删除封面
     * @param filePath
     * @return
     */
    public  boolean fileDelete( String filePath);

    /**
     * 预览
     * @param typeId
     * @param type
     * @return
     */
    public byte[] queryImage(String typeId, String type);


    /**
     * 查询专题树
     *
     * @param
     * @return java.util.List<cn.yuanqiao.archive.bianyan.domain.YqZhuanTi>
     * @author hbWang
     * @date 2023/7/5 10:14
     */
    List<YqZhuanTi> selectYqZhuanTiTree(String typeName);

    List<YqZhuanTi> selectYqZhuanTiTreeByPid(Long id);

    List<YqZhuanTi> getTree(Long id);
}
